[INFO] fetching crate mail-parser 0.9.2...
[INFO] checking mail-parser-0.9.2 against master#158f00a1c5175648af6f6099b075f78d1d014a28 for pr-121251
[INFO] extracting crate mail-parser 0.9.2 into /workspace/builds/worker-1-tc1/source
[INFO] validating manifest of crates.io crate mail-parser 0.9.2 on toolchain 158f00a1c5175648af6f6099b075f78d1d014a28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate mail-parser 0.9.2
[INFO] finished tweaking crates.io crate mail-parser 0.9.2
[INFO] tweaked toml for crates.io crate mail-parser 0.9.2 written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] crate crates.io crate mail-parser 0.9.2 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded syn v2.0.22
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] d5dcf6f4ab4f7fb08071301be9f4a71d1960b0cdc8a107ddc8be163dcf581929
[INFO] running `Command { std: "docker" "start" "-a" "d5dcf6f4ab4f7fb08071301be9f4a71d1960b0cdc8a107ddc8be163dcf581929", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d5dcf6f4ab4f7fb08071301be9f4a71d1960b0cdc8a107ddc8be163dcf581929", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d5dcf6f4ab4f7fb08071301be9f4a71d1960b0cdc8a107ddc8be163dcf581929", kill_on_drop: false }`
[INFO] [stdout] d5dcf6f4ab4f7fb08071301be9f4a71d1960b0cdc8a107ddc8be163dcf581929
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6a97567435715411133d15e776faea84fc0cc55b3fceb9e2f0281cfbd40343f2
[INFO] running `Command { std: "docker" "start" "-a" "6a97567435715411133d15e776faea84fc0cc55b3fceb9e2f0281cfbd40343f2", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.28
[INFO] [stderr]    Compiling serde v1.0.164
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]     Checking encoding_rs v0.8.32
[INFO] [stderr]    Compiling serde_json v1.0.99
[INFO] [stderr]     Checking time v0.1.45
[INFO] [stderr]    Compiling syn v2.0.22
[INFO] [stderr]     Checking chrono v0.4.26
[INFO] [stderr]     Checking mail-parser v0.9.2 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling serde_derive v1.0.164
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stdout] error[E0277]: the trait bound `mail_parser::Message<'_>: serde::ser::Serialize` is not satisfied
[INFO] [stdout]     --> examples/mailbox_parse_mbox.rs:22:46
[INFO] [stdout]      |
[INFO] [stdout] 22   |         println!("{}", serde_json::to_string(&message).unwrap());
[INFO] [stdout]      |                        --------------------- ^^^^^^^^ the trait `serde::ser::Serialize` is not implemented for `mail_parser::Message<'_>`
[INFO] [stdout]      |                        |
[INFO] [stdout]      |                        required by a bound introduced by this call
[INFO] [stdout]      |
[INFO] [stdout]      = help: the following other types implement trait `serde::ser::Serialize`:
[INFO] [stdout]                bool
[INFO] [stdout]                char
[INFO] [stdout]                isize
[INFO] [stdout]                i8
[INFO] [stdout]                i16
[INFO] [stdout]                i32
[INFO] [stdout]                i64
[INFO] [stdout]                i128
[INFO] [stdout]              and 127 others
[INFO] [stdout] note: required by a bound in `serde_json::to_string`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/serde_json-1.0.99/src/ser.rs:2145:17
[INFO] [stdout]      |
[INFO] [stdout] 2143 | pub fn to_string<T>(value: &T) -> Result<String>
[INFO] [stdout]      |        --------- required by a bound in this function
[INFO] [stdout] 2144 | where
[INFO] [stdout] 2145 |     T: ?Sized + Serialize,
[INFO] [stdout]      |                 ^^^^^^^^^ required by this bound in `to_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `mail_parser::Header<'_>: serde::de::Deserialize<'_>` is not satisfied
[INFO] [stdout]    --> tests/integration_test.rs:73:9
[INFO] [stdout]     |
[INFO] [stdout] 73  | /         bincode::deserialize::<Vec<Header>>(
[INFO] [stdout] 74  | |             &bincode::serialize(&message.parts[0].headers).unwrap()
[INFO] [stdout] 75  | |         )
[INFO] [stdout]     | |_________^ the trait `serde::de::Deserialize<'_>` is not implemented for `mail_parser::Header<'_>`, which is required by `Vec<mail_parser::Header<'_>>: serde::de::Deserialize<'_>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `serde::de::Deserialize<'de>`:
[INFO] [stdout]               bool
[INFO] [stdout]               char
[INFO] [stdout]               isize
[INFO] [stdout]               i8
[INFO] [stdout]               i16
[INFO] [stdout]               i32
[INFO] [stdout]               i64
[INFO] [stdout]               i128
[INFO] [stdout]             and 124 others
[INFO] [stdout]     = note: required for `Vec<mail_parser::Header<'_>>` to implement `serde::de::Deserialize<'_>`
[INFO] [stdout] note: required by a bound in `bincode::deserialize`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/bincode-1.3.3/src/lib.rs:179:8
[INFO] [stdout]     |
[INFO] [stdout] 177 | pub fn deserialize<'a, T>(bytes: &'a [u8]) -> Result<T>
[INFO] [stdout]     |        ----------- required by a bound in this function
[INFO] [stdout] 178 | where
[INFO] [stdout] 179 |     T: serde::de::Deserialize<'a>,
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `deserialize`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `mail_parser::Message<'_>: serde::ser::Serialize` is not satisfied
[INFO] [stdout]     --> examples/message_parse.rs:143:49
[INFO] [stdout]      |
[INFO] [stdout] 143  |     println!("{}", serde_json::to_string_pretty(&message).unwrap());
[INFO] [stdout]      |                    ---------------------------- ^^^^^^^^ the trait `serde::ser::Serialize` is not implemented for `mail_parser::Message<'_>`
[INFO] [stdout]      |                    |
[INFO] [stdout]      |                    required by a bound introduced by this call
[INFO] [stdout]      |
[INFO] [stdout]      = help: the following other types implement trait `serde::ser::Serialize`:
[INFO] [stdout]                bool
[INFO] [stdout]                char
[INFO] [stdout]                isize
[INFO] [stdout]                i8
[INFO] [stdout]                i16
[INFO] [stdout]                i32
[INFO] [stdout]                i64
[INFO] [stdout]                i128
[INFO] [stdout]              and 127 others
[INFO] [stdout] note: required by a bound in `to_string_pretty`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/serde_json-1.0.99/src/ser.rs:2164:17
[INFO] [stdout]      |
[INFO] [stdout] 2162 | pub fn to_string_pretty<T>(value: &T) -> Result<String>
[INFO] [stdout]      |        ---------------- required by a bound in this function
[INFO] [stdout] 2163 | where
[INFO] [stdout] 2164 |     T: ?Sized + Serialize,
[INFO] [stdout]      |                 ^^^^^^^^^ required by this bound in `to_string_pretty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `mail_parser::Header<'_>: serde::ser::Serialize` is not satisfied
[INFO] [stdout]    --> tests/integration_test.rs:74:33
[INFO] [stdout]     |
[INFO] [stdout] 74  |             &bincode::serialize(&message.parts[0].headers).unwrap()
[INFO] [stdout]     |              ------------------ ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `serde::ser::Serialize` is not implemented for `mail_parser::Header<'_>`, which is required by `Vec<mail_parser::Header<'_>>: serde::ser::Serialize`
[INFO] [stdout]     |              |
[INFO] [stdout]     |              required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `serde::ser::Serialize`:
[INFO] [stdout]               bool
[INFO] [stdout]               char
[INFO] [stdout]               isize
[INFO] [stdout]               i8
[INFO] [stdout]               i16
[INFO] [stdout]               i32
[INFO] [stdout]               i64
[INFO] [stdout]               i128
[INFO] [stdout]             and 124 others
[INFO] [stdout]     = note: required for `Vec<mail_parser::Header<'_>>` to implement `serde::ser::Serialize`
[INFO] [stdout] note: required by a bound in `bincode::serialize`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/bincode-1.3.3/src/lib.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn serialize<T: ?Sized>(value: &T) -> Result<Vec<u8>>
[INFO] [stdout]     |        --------- required by a bound in this function
[INFO] [stdout] 107 | where
[INFO] [stdout] 108 |     T: serde::Serialize,
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ required by this bound in `serialize`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `mail-parser` (example "mailbox_parse_mbox") due to 2 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `mail-parser` (example "message_parse") due to 2 previous errors
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `mail-parser` (test "integration_test") due to 3 previous errors
[INFO] [stdout] error[E0277]: the trait bound `for<'de> Address<'_>: Deserialize<'de>` is not satisfied
[INFO] [stdout]    --> src/parsers/fields/address.rs:471:21
[INFO] [stdout]     |
[INFO] [stdout] 471 |         for test in load_tests("address.json") {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `for<'de> Deserialize<'de>` is not implemented for `Address<'_>`, which is required by `Address<'_>: DeserializeOwned`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]               bool
[INFO] [stdout]               char
[INFO] [stdout]               isize
[INFO] [stdout]               i8
[INFO] [stdout]               i16
[INFO] [stdout]               i32
[INFO] [stdout]               i64
[INFO] [stdout]               i128
[INFO] [stdout]             and 129 others
[INFO] [stdout]     = note: required for `Address<'_>` to implement `DeserializeOwned`
[INFO] [stdout] note: required by a bound in `load_tests`
[INFO] [stdout]    --> src/parsers/fields/mod.rs:33:22
[INFO] [stdout]     |
[INFO] [stdout] 33  | pub fn load_tests<T: serde::de::DeserializeOwned>(test_name: &str) -> Vec<Test<T>> {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `load_tests`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `ContentType<'_>: Deserialize<'_>` is not satisfied
[INFO] [stdout]    --> src/parsers/fields/content_type.rs:521:21
[INFO] [stdout]     |
[INFO] [stdout] 521 |         for test in load_tests("content_type.json") {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Deserialize<'_>` is not implemented for `ContentType<'_>`, which is required by `std::option::Option<ContentType<'_>>: DeserializeOwned`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]               bool
[INFO] [stdout]               char
[INFO] [stdout]               isize
[INFO] [stdout]               i8
[INFO] [stdout]               i16
[INFO] [stdout]               i32
[INFO] [stdout]               i64
[INFO] [stdout]               i128
[INFO] [stdout]             and 129 others
[INFO] [stdout]     = note: required for `std::option::Option<ContentType<'_>>` to implement `for<'de> Deserialize<'de>`
[INFO] [stdout]     = note: required for `std::option::Option<ContentType<'_>>` to implement `DeserializeOwned`
[INFO] [stdout] note: required by a bound in `load_tests`
[INFO] [stdout]    --> src/parsers/fields/mod.rs:33:22
[INFO] [stdout]     |
[INFO] [stdout] 33  | pub fn load_tests<T: serde::de::DeserializeOwned>(test_name: &str) -> Vec<Test<T>> {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `load_tests`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `DateTime: Deserialize<'_>` is not satisfied
[INFO] [stdout]    --> src/parsers/fields/date.rs:470:21
[INFO] [stdout]     |
[INFO] [stdout] 470 |         for test in load_tests("date.json") {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^ the trait `Deserialize<'_>` is not implemented for `DateTime`, which is required by `std::option::Option<DateTime>: DeserializeOwned`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]               bool
[INFO] [stdout]               char
[INFO] [stdout]               isize
[INFO] [stdout]               i8
[INFO] [stdout]               i16
[INFO] [stdout]               i32
[INFO] [stdout]               i64
[INFO] [stdout]               i128
[INFO] [stdout]             and 129 others
[INFO] [stdout]     = note: required for `std::option::Option<DateTime>` to implement `for<'de> Deserialize<'de>`
[INFO] [stdout]     = note: required for `std::option::Option<DateTime>` to implement `DeserializeOwned`
[INFO] [stdout] note: required by a bound in `load_tests`
[INFO] [stdout]    --> src/parsers/fields/mod.rs:33:22
[INFO] [stdout]     |
[INFO] [stdout] 33  | pub fn load_tests<T: serde::de::DeserializeOwned>(test_name: &str) -> Vec<Test<T>> {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `load_tests`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `for<'de> Received<'_>: Deserialize<'de>` is not satisfied
[INFO] [stdout]    --> src/parsers/fields/received.rs:849:21
[INFO] [stdout]     |
[INFO] [stdout] 849 |         for test in load_tests("received.json") {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `for<'de> Deserialize<'de>` is not implemented for `Received<'_>`, which is required by `Received<'_>: DeserializeOwned`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `Deserialize<'de>`:
[INFO] [stdout]               bool
[INFO] [stdout]               char
[INFO] [stdout]               isize
[INFO] [stdout]               i8
[INFO] [stdout]               i16
[INFO] [stdout]               i32
[INFO] [stdout]               i64
[INFO] [stdout]               i128
[INFO] [stdout]             and 129 others
[INFO] [stdout]     = note: required for `Received<'_>` to implement `DeserializeOwned`
[INFO] [stdout] note: required by a bound in `load_tests`
[INFO] [stdout]    --> src/parsers/fields/mod.rs:33:22
[INFO] [stdout]     |
[INFO] [stdout] 33  | pub fn load_tests<T: serde::de::DeserializeOwned>(test_name: &str) -> Vec<Test<T>> {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `load_tests`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Message<'_>: Serialize` is not satisfied
[INFO] [stdout]     --> src/parsers/message.rs:623:69
[INFO] [stdout]      |
[INFO] [stdout] 623  |                     let json_message = serde_json::to_string_pretty(&message).unwrap();
[INFO] [stdout]      |                                        ---------------------------- ^^^^^^^^ the trait `Serialize` is not implemented for `Message<'_>`
[INFO] [stdout]      |                                        |
[INFO] [stdout]      |                                        required by a bound introduced by this call
[INFO] [stdout]      |
[INFO] [stdout]      = help: the following other types implement trait `Serialize`:
[INFO] [stdout]                bool
[INFO] [stdout]                char
[INFO] [stdout]                isize
[INFO] [stdout]                i8
[INFO] [stdout]                i16
[INFO] [stdout]                i32
[INFO] [stdout]                i64
[INFO] [stdout]                i128
[INFO] [stdout]              and 128 others
[INFO] [stdout] note: required by a bound in `to_string_pretty`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/serde_json-1.0.99/src/ser.rs:2164:17
[INFO] [stdout]      |
[INFO] [stdout] 2162 | pub fn to_string_pretty<T>(value: &T) -> Result<String>
[INFO] [stdout]      |        ---------------- required by a bound in this function
[INFO] [stdout] 2163 | where
[INFO] [stdout] 2164 |     T: ?Sized + Serialize,
[INFO] [stdout]      |                 ^^^^^^^^^ required by this bound in `to_string_pretty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Message<'_>: Serialize` is not satisfied
[INFO] [stdout]     --> src/parsers/message.rs:640:69
[INFO] [stdout]      |
[INFO] [stdout] 640  |                     let json_message = serde_json::to_string_pretty(&message).unwrap();
[INFO] [stdout]      |                                        ---------------------------- ^^^^^^^^ the trait `Serialize` is not implemented for `Message<'_>`
[INFO] [stdout]      |                                        |
[INFO] [stdout]      |                                        required by a bound introduced by this call
[INFO] [stdout]      |
[INFO] [stdout]      = help: the following other types implement trait `Serialize`:
[INFO] [stdout]                bool
[INFO] [stdout]                char
[INFO] [stdout]                isize
[INFO] [stdout]                i8
[INFO] [stdout]                i16
[INFO] [stdout]                i32
[INFO] [stdout]                i64
[INFO] [stdout]                i128
[INFO] [stdout]              and 128 others
[INFO] [stdout] note: required by a bound in `to_string_pretty`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/serde_json-1.0.99/src/ser.rs:2164:17
[INFO] [stdout]      |
[INFO] [stdout] 2162 | pub fn to_string_pretty<T>(value: &T) -> Result<String>
[INFO] [stdout]      |        ---------------- required by a bound in this function
[INFO] [stdout] 2163 | where
[INFO] [stdout] 2164 |     T: ?Sized + Serialize,
[INFO] [stdout]      |                 ^^^^^^^^^ required by this bound in `to_string_pretty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 6 previous errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `mail-parser` (lib test) due to 7 previous errors
[INFO] running `Command { std: "docker" "inspect" "6a97567435715411133d15e776faea84fc0cc55b3fceb9e2f0281cfbd40343f2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6a97567435715411133d15e776faea84fc0cc55b3fceb9e2f0281cfbd40343f2", kill_on_drop: false }`
[INFO] [stdout] 6a97567435715411133d15e776faea84fc0cc55b3fceb9e2f0281cfbd40343f2
[INFO] checking mail-parser-0.9.2 against try#b4fc5dbf0bc33be331f9d893db5b3a794f29724a+rustflags=-Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds for pr-121251
[INFO] extracting crate mail-parser 0.9.2 into /workspace/builds/worker-1-tc2/source
[INFO] validating manifest of crates.io crate mail-parser 0.9.2 on toolchain b4fc5dbf0bc33be331f9d893db5b3a794f29724a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate mail-parser 0.9.2
[INFO] finished tweaking crates.io crate mail-parser 0.9.2
[INFO] tweaked toml for crates.io crate mail-parser 0.9.2 written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] crate crates.io crate mail-parser 0.9.2 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a1ccb85eae412b5f8c16eff5abe6ae2dd4e5b55d8fe4a72a11daa26f264dd593
[INFO] running `Command { std: "docker" "start" "-a" "a1ccb85eae412b5f8c16eff5abe6ae2dd4e5b55d8fe4a72a11daa26f264dd593", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a1ccb85eae412b5f8c16eff5abe6ae2dd4e5b55d8fe4a72a11daa26f264dd593", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a1ccb85eae412b5f8c16eff5abe6ae2dd4e5b55d8fe4a72a11daa26f264dd593", kill_on_drop: false }`
[INFO] [stdout] a1ccb85eae412b5f8c16eff5abe6ae2dd4e5b55d8fe4a72a11daa26f264dd593
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6a65d02a8655de2ca826c04c00d105bcedcaf9c6e1a75a65cfa3772e5d9833e6
[INFO] running `Command { std: "docker" "start" "-a" "6a65d02a8655de2ca826c04c00d105bcedcaf9c6e1a75a65cfa3772e5d9833e6", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.28
[INFO] [stderr]    Compiling serde v1.0.164
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]    Compiling serde_json v1.0.99
[INFO] [stderr]     Checking encoding_rs v0.8.32
[INFO] [stderr]     Checking time v0.1.45
[INFO] [stderr]    Compiling syn v2.0.22
[INFO] [stderr]     Checking chrono v0.4.26
[INFO] [stderr]     Checking mail-parser v0.9.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/core/message.rs:51:65
[INFO] [stdout]    |
[INFO] [stdout] 51 |             .and_then(|h| std::str::from_utf8(&self.raw_message[h.offset_start..h.offset_end]).ok())
[INFO] [stdout]    |                                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-W range-syntax`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/core/message.rs:66:30
[INFO] [stdout]    |
[INFO] [stdout] 66 |                         .get(header_.offset_start..header_.offset_end)
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/core/message.rs:112:55
[INFO] [stdout]     |
[INFO] [stdout] 112 |                 std::str::from_utf8(&self.raw_message[header.offset_start..header.offset_end])
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/core/message.rs:122:18
[INFO] [stdout]     |
[INFO] [stdout] 122 |             .get(part.offset_header..part.offset_end)
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/decoders/base64.rs:55:64
[INFO] [stdout]    |
[INFO] [stdout] 55 |                     buf.extend_from_slice(&chunk.to_le_bytes()[0..3]);
[INFO] [stdout]    |                                                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/decoders/base64.rs:76:68
[INFO] [stdout]    |
[INFO] [stdout] 76 |                         buf.extend_from_slice(&chunk.to_le_bytes()[0..2]);
[INFO] [stdout]    |                                                                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/decoders/base64.rs:129:68
[INFO] [stdout]     |
[INFO] [stdout] 129 |                         buf.extend_from_slice(&chunk.to_le_bytes()[0..3]);
[INFO] [stdout]     |                                                                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/decoders/base64.rs:150:72
[INFO] [stdout]     |
[INFO] [stdout] 150 | ...                   buf.extend_from_slice(&chunk.to_le_bytes()[0..2]);
[INFO] [stdout]     |                                                                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/decoders/base64.rs:232:72
[INFO] [stdout]     |
[INFO] [stdout] 232 | ...                   buf.extend_from_slice(&chunk.to_le_bytes()[0..2]);
[INFO] [stdout]     |                                                                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/decoders/base64.rs:279:76
[INFO] [stdout]     |
[INFO] [stdout] 279 | ...                   buf.extend_from_slice(&chunk.to_le_bytes()[0..3]);
[INFO] [stdout]     |                                                                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]   --> src/decoders/charsets/map.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     if (2..=45).contains(&charset.len()) {
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]   --> src/decoders/charsets/map.rs:53:13
[INFO] [stdout]    |
[INFO] [stdout] 53 |         if (7..=764).contains(&hash) {
[INFO] [stdout]    |             ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/decoders/charsets/utf.rs:25:47
[INFO] [stdout]    |
[INFO] [stdout] 25 |     for byte in state.b64_bytes.to_le_bytes()[0..n_bytes].iter() {
[INFO] [stdout]    |                                               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/decoders/charsets/utf.rs:125:69
[INFO] [stdout]     |
[INFO] [stdout] 125 |     let (bytes, fnc): (&[u8], fn([u8; 2]) -> u16) = match bytes.get(0..2) {
[INFO] [stdout]     |                                                                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/decoders/charsets/utf.rs:126:42
[INFO] [stdout]     |
[INFO] [stdout] 126 |         Some([0xfe, 0xff]) => (bytes.get(2..).unwrap_or(&[]), u16::from_be_bytes),
[INFO] [stdout]     |                                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/decoders/charsets/utf.rs:127:42
[INFO] [stdout]     |
[INFO] [stdout] 127 |         Some([0xff, 0xfe]) => (bytes.get(2..).unwrap_or(&[]), u16::from_le_bytes),
[INFO] [stdout]     |                                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/decoders/encoded_word.rs:84:63
[INFO] [stdout]    |
[INFO] [stdout] 84 |             if let Some(decoder) = charset_decoder(self.bytes(charset_start..charset_end)) {
[INFO] [stdout]    |                                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]   --> src/decoders/html.rs:30:20
[INFO] [stdout]    |
[INFO] [stdout] 30 |         } else if (2..=31).contains(&entity.len()) {
[INFO] [stdout]    |                    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]   --> src/decoders/html.rs:92:17
[INFO] [stdout]    |
[INFO] [stdout] 92 |             if (64..=18079).contains(&hash) {
[INFO] [stdout]    |                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/decoders/html.rs:139:36
[INFO] [stdout]     |
[INFO] [stdout] 139 | ...                   &input[token_start..token_end + 1],
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/decoders/html.rs:153:41
[INFO] [stdout]     |
[INFO] [stdout] 153 |                         match input.get(token_start..token_end + 1) {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/decoders/html.rs:181:52
[INFO] [stdout]     |
[INFO] [stdout] 181 |                     if let Some(b"--") = input.get(pos + 1..pos + 3) {
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/decoders/html.rs:191:40
[INFO] [stdout]     |
[INFO] [stdout] 191 | ...                   &input[token_start..token_end + 1],
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/decoders/html.rs:206:32
[INFO] [stdout]     |
[INFO] [stdout] 206 |                         &input[token_start..token_end + 1],
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/decoders/html.rs:216:32
[INFO] [stdout]     |
[INFO] [stdout] 216 |                         &input[token_start..pos + 1],
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/decoders/html.rs:251:20
[INFO] [stdout]     |
[INFO] [stdout] 251 |             &input[token_start..token_end + 1],
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/mailbox/mbox.rs:84:74
[INFO] [stdout]    |
[INFO] [stdout] 84 |                         message.contents.extend_from_slice(&message_line[1..]);
[INFO] [stdout]    |                                                                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/parsers/fields/address.rs:48:62
[INFO] [stdout]    |
[INFO] [stdout] 48 |             let token = String::from_utf8_lossy(&stream.data[self.token_start - 1..self.token_end]);
[INFO] [stdout]    |                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/parsers/fields/address.rs:403:46
[INFO] [stdout]     |
[INFO] [stdout] 403 |                 std::str::from_utf8(addr.get(pos + 1..)?).ok()
[INFO] [stdout]     |                                              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/parsers/fields/address.rs:453:53
[INFO] [stdout]     |
[INFO] [stdout] 453 |                 return std::str::from_utf8(addr.get(plus_pos..pos)?).ok();
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/parsers/fields/content_type.rs:68:30
[INFO] [stdout]    |
[INFO] [stdout] 68 |                 &stream.data[self.token_start - 1..self.token_end],
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/parsers/fields/content_type.rs:93:54
[INFO] [stdout]    |
[INFO] [stdout] 93 |                 String::from_utf8_lossy(&stream.data[self.token_start - 1..self.token_end]);
[INFO] [stdout]    |                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/parsers/fields/content_type.rs:118:30
[INFO] [stdout]     |
[INFO] [stdout] 118 |                   &stream.data[self.token_start - 1..if in_quote && to_cur_pos {
[INFO] [stdout]     |  ______________________________^
[INFO] [stdout] 119 | |                     stream.offset() - 1
[INFO] [stdout] 120 | |                 } else {
[INFO] [stdout] 121 | |                     self.token_end
[INFO] [stdout] 122 | |                 }],
[INFO] [stdout]     | |_________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/parsers/fields/content_type.rs:139:38
[INFO] [stdout]     |
[INFO] [stdout] 139 |             let value = &stream.data[self.token_start - 1..self.token_end];
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/parsers/fields/content_type.rs:229:54
[INFO] [stdout]     |
[INFO] [stdout] 229 |                 String::from_utf8_lossy(&stream.data[self.token_start - 1..self.token_end])
[INFO] [stdout]     |                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> src/parsers/fields/date.rs:176:10
[INFO] [stdout]     |
[INFO] [stdout] 176 |         (0..=23).contains(&self.tz_hour)
[INFO] [stdout]     |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> src/parsers/fields/date.rs:177:17
[INFO] [stdout]     |
[INFO] [stdout] 177 |             && (1900..=3000).contains(&self.year)
[INFO] [stdout]     |                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> src/parsers/fields/date.rs:178:17
[INFO] [stdout]     |
[INFO] [stdout] 178 |             && (0..=59).contains(&self.tz_minute)
[INFO] [stdout]     |                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> src/parsers/fields/date.rs:179:17
[INFO] [stdout]     |
[INFO] [stdout] 179 |             && (1..=12).contains(&self.month)
[INFO] [stdout]     |                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> src/parsers/fields/date.rs:180:17
[INFO] [stdout]     |
[INFO] [stdout] 180 |             && (1..=31).contains(&self.day)
[INFO] [stdout]     |                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> src/parsers/fields/date.rs:181:17
[INFO] [stdout]     |
[INFO] [stdout] 181 |             && (0..=23).contains(&self.hour)
[INFO] [stdout]     |                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> src/parsers/fields/date.rs:182:17
[INFO] [stdout]     |
[INFO] [stdout] 182 |             && (0..=59).contains(&self.minute)
[INFO] [stdout]     |                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> src/parsers/fields/date.rs:183:17
[INFO] [stdout]     |
[INFO] [stdout] 183 |             && (0..=59).contains(&self.second)
[INFO] [stdout]     |                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> src/parsers/fields/date.rs:368:29
[INFO] [stdout]     |
[INFO] [stdout] 368 |                         if (1..=2).contains(&month_pos) {
[INFO] [stdout]     |                             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> src/parsers/fields/date.rs:420:27
[INFO] [stdout]     |
[INFO] [stdout] 420 |                 year: if (1..=99).contains(&parts[2]) {
[INFO] [stdout]     |                           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/parsers/fields/id.rs:32:52
[INFO] [stdout]    |
[INFO] [stdout] 32 | ...                   self.bytes(token_invalid_start - 1..token_invalid_end),
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/parsers/fields/id.rs:52:40
[INFO] [stdout]    |
[INFO] [stdout] 52 | ...                   self.bytes(token_start - 1..token_end),
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/parsers/fields/list.rs:31:30
[INFO] [stdout]    |
[INFO] [stdout] 31 |                 &stream.data[self.token_start - 1..self.token_end],
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/parsers/fields/raw.rs:25:44
[INFO] [stdout]    |
[INFO] [stdout] 25 | ...                   self.bytes(token_start - 1..token_end),
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> src/parsers/fields/received.rs:329:27
[INFO] [stdout]     |
[INFO] [stdout] 329 |                 year: if (1..=99).contains(&date[2]) {
[INFO] [stdout]     |                           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/parsers/fields/received.rs:566:58
[INFO] [stdout]     |
[INFO] [stdout] 566 |         let text = std::str::from_utf8(self.stream.bytes(start_pos..self.stream.offset() - 1))
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/parsers/fields/thread.rs:65:43
[INFO] [stdout]    |
[INFO] [stdout] 65 |                         let prefix = text[token_start..token_end].to_lowercase();
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/parsers/fields/thread.rs:100:39
[INFO] [stdout]     |
[INFO] [stdout] 100 |                     let prefix = text[token_start..token_end].to_lowercase();
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/parsers/fields/thread.rs:117:35
[INFO] [stdout]     |
[INFO] [stdout] 117 |                 let prefix = text[token_start..token_end].to_lowercase();
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/parsers/fields/thread.rs:147:46
[INFO] [stdout]     |
[INFO] [stdout] 147 |         let result = trim_trailing_fwd(&text[last_blob_end..]);
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/parsers/fields/thread.rs:154:46
[INFO] [stdout]     |
[INFO] [stdout] 154 |         let result = trim_trailing_fwd(&text[fwd_start..fwd_end]);
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/parsers/fields/thread.rs:160:29
[INFO] [stdout]     |
[INFO] [stdout] 160 |     trim_trailing_fwd(&text[thread_name_start..])
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/parsers/fields/thread.rs:178:56
[INFO] [stdout]     |
[INFO] [stdout] 178 |                         && FWD_PREFIXES.contains(&text[pos + 1..fwd_end].to_lowercase().as_ref())
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/parsers/fields/thread.rs:215:15
[INFO] [stdout]     |
[INFO] [stdout] 215 |         &text[text_start..text_end]
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/parsers/fields/unstructured.rs:29:30
[INFO] [stdout]    |
[INFO] [stdout] 29 |                 stream.bytes(self.token_start - 1..self.token_end),
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/parsers/header.rs:148:36
[INFO] [stdout]     |
[INFO] [stdout] 148 |             let field = self.bytes(token_start - 1..token_end);
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> src/parsers/header.rs:150:17
[INFO] [stdout]     |
[INFO] [stdout] 150 |             if (2..=25).contains(&token_len) {
[INFO] [stdout]     |                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> src/parsers/header.rs:161:21
[INFO] [stdout]     |
[INFO] [stdout] 161 |                 if (4..=72).contains(&token_hash) {
[INFO] [stdout]     |                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> src/parsers/header.rs:203:13
[INFO] [stdout]     |
[INFO] [stdout] 203 |         if (2..=25).contains(&data.len()) {
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> src/parsers/header.rs:214:17
[INFO] [stdout]     |
[INFO] [stdout] 214 |             if (4..=72).contains(&token_hash) {
[INFO] [stdout]     |                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/parsers/message.rs:262:37
[INFO] [stdout]     |
[INFO] [stdout] 262 |                 bytes = stream.data[state.offset_body..state.offset_end].into();
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/parsers/message.rs:451:68
[INFO] [stdout]     |
[INFO] [stdout] 451 | ...                   for &part_id in &message.html_body[state.html_parts..] {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/parsers/message.rs:460:68
[INFO] [stdout]     |
[INFO] [stdout] 460 | ...                   for &part_id in &message.text_body[state.html_parts..] {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/parsers/mime.rs:84:45
[INFO] [stdout]    |
[INFO] [stdout] 84 |                 return (end_pos, self.bytes(start_pos..end_pos).into());
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/parsers/mime.rs:98:24
[INFO] [stdout]    |
[INFO] [stdout] 98 |             self.bytes(start_pos..self.len()).into(),
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/parsers/preview.rs:62:51
[INFO] [stdout]    |
[INFO] [stdout] 62 |                     if let Some("!--") = html.get(pos + 1..pos + 4) {
[INFO] [stdout]    |                                                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/parsers/preview.rs:69:54
[INFO] [stdout]    |
[INFO] [stdout] 69 |                         if let Some("--") = html.get(pos - 2..pos) {
[INFO] [stdout]    |                                                      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/parsers/preview.rs:83:27
[INFO] [stdout]    |
[INFO] [stdout] 83 |                       &html[0..if (in_tag || set_last_tag > 0) && last_tag_end_pos > 0 {
[INFO] [stdout]    |  ___________________________^
[INFO] [stdout] 84 | |                         last_tag_end_pos
[INFO] [stdout] 85 | |                     } else {
[INFO] [stdout] 86 | |                         pos
[INFO] [stdout] 87 | |                     }],
[INFO] [stdout]    | |_____________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/parsers/mod.rs:59:31
[INFO] [stdout]    |
[INFO] [stdout] 59 |         self.iter = self.data[self.restore_pos..].iter().peekable();
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/parsers/mod.rs:72:23
[INFO] [stdout]    |
[INFO] [stdout] 72 |         self.data.get(pos..pos + len)
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/parsers/mod.rs:83:31
[INFO] [stdout]    |
[INFO] [stdout] 83 |         self.iter = self.data[self.pos..].iter().peekable();
[INFO] [stdout]    |                               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/parsers/mod.rs:107:32
[INFO] [stdout]     |
[INFO] [stdout] 107 |     pub fn bytes(&self, range: Range<usize>) -> &'x [u8] {
[INFO] [stdout]     |                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: requested on the command line with `-D explicit-range`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error; 76 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `mail-parser` (lib) due to 2 previous errors; 76 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] running `Command { std: "docker" "inspect" "6a65d02a8655de2ca826c04c00d105bcedcaf9c6e1a75a65cfa3772e5d9833e6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6a65d02a8655de2ca826c04c00d105bcedcaf9c6e1a75a65cfa3772e5d9833e6", kill_on_drop: false }`
[INFO] [stdout] 6a65d02a8655de2ca826c04c00d105bcedcaf9c6e1a75a65cfa3772e5d9833e6
